Reducing Computational Complexity in Determining the Distance from Each of a Set of Input Points to Each of a Set of Fixed Points

ABSTRACT

An aspect of the present invention takes advantage of the fact that the coordinates of fixed points do not change, and thus the energy (sum of squares of the coordinates defining the vector) of each fixed point is computed and stored. The energy of each variable input point may also be computed. The distance between each pair of fixed and input points is computed based on the respective energies and the dot product.

BACKGROUND Field

Embodiments of the invention generally relate to a computer implementedapproach to determine the distance from each of set of input points toeach of a set of fixed points, and more specifically to the use of suchapproaches to speech encoding.

There is often a need to determine the distance from each of a set ofinput points to each of a set of fixed points. For example, in datacompression techniques (e.g., speech encoding), the nearest code words(fixed points) corresponding to parameters (“speech parameters”)characterizing speech samples are often determined. The nearest codewords may then be deemed to represent one or more of the speech samples.Examples of such approaches are described in the 3GPP2 C.S0030_(—)0standard, Version 3.0, Dated January 2004, entitled, “Selectable ModeVocoder (SMV) Service Option for Wideband Spread Spectrum CommunicationSystems”.

The distance between two points (in a n-dimensional space) a and b,having coordinates of (a1, a2, . . . an) and (b1, b2, . . . , bn) may becomputed using Euclidean approach according to Equation (1) below:

$\begin{matrix}{{{Distance}\left( {a,b} \right)} = \sqrt{{\sum\limits_{j = 1}^{n}\left( {{aj} - {bj}} \right)^{2}}\;}} & {{Equation}\mspace{20mu} 1} \\\sqrt{{{Energy}(a)} = {{{energy}(b)} - {{Dot}\mspace{20mu} {{Productsum}\left( {a,b} \right)}}}} & {{Equation}\mspace{20mu} (3)}\end{matrix}$

In one approach, assuming that there are R fixed points and L inputpoints (wherein L and R are integers), Equation (1) is used (L*R) times.For each distance between a pair of points, the number of computationsequal n subtractions, n square operations, (n−1) additions, and onesquare root operation.

Thus, for illustration, assuming R=30, L=7, n=10, the number ofcomputations equals {(30*7) (10 subtractions, 10 square operations, 9additions, and 1 square root)}. That is, 2100 square operations, 2100subtractions, 1890 additions and 210 square root operations, may beperformed in total. Alternatively, only the square of the distance maysuffice in some embodiments and the 210 square root operations may beavoided in such embodiments.

There is a general need to reduce the computational complexity whiledetermining such distances.

BRIEF DESCRIPTION OF THE DRAWINGS

Various features of the present invention will be described withreference to the following accompanying drawings.

FIG. 1 is a block diagram containing the details of two mobile phonesillustrating an example environment in which various aspects of thepresent invention can be implemented.

FIG. 2 is block diagram illustrating the details of a speech encoder inone embodiment.

FIG. 3 is a block diagram illustrating the manner in which a speechsamples is represented in compressed format in one embodiment.

FIG. 4 illustrates the need for determining nearest distances whilerepresenting speech samples in compressed format in an embodiment.

FIG. 5 is a flowchart illustrating the manner in which the distancebetween each of multiple fixed points and each of multiple inputvariable points can be determined in an embodiment of the presentinvention.

FIG. 6 is a block diagram illustrating an example device in whichvarious features of the present invention are operative by execution ofcorresponding software instructions.

In the drawings, like reference numbers generally indicate identical,functionally similar, and/or structurally similar elements. The drawingin which an element first appears is indicated by the leftmost digit(s)in the corresponding reference number.

DETAILED DESCRIPTION 1. Overview

An aspect of the present invention takes advantage of the fact that thecoordinates of fixed points do not change, and thus the energy (sum ofsquares of the coordinates defining the vector) of each vector iscomputed and stored. The stored value is then used to determine thedistance according to the following equation:

$\begin{matrix}{{{Distance}\left( {a,b} \right)} = \sqrt{{\sum\limits_{j = 1}^{n}{aj}^{2}} + {\sum\limits_{j = 1}^{n}{bj}^{2}} - {\sum\limits_{j = 1}^{n}\left( {2 \times {aj} \times {bj}} \right)}}} & {{Equation}\mspace{20mu} (2)}\end{matrix}$

wherein a represents an input vector/point and b represents a fixedvector (or point), aj represents the jth coordinate of vector a, and bjrepresents the jth coordinate of vector b.

Thus, the energy of each fixed vector can be computed only onceirrespective of the number of input vectors (a). Similarly, the energyof each input vector can be computed only once irrespective of thenumber of fixed vectors. As a result, the computational complexity isreduced when determining the distance between from each of a set ofinput points/vectors to each of multiple fixed points.

According to another aspect of the present invention, the above notedapproaches are extended to a scenario in which a weight is associatedwith the difference in each dimension (i.e., weight wk, is associatedwith (ak−bk)²). Computational reduction is obtained in such a scenarioas well. The reduction is illustrated to be applicable in compressingspeech samples in the embodiments described below. It should beappreciated that when wk=1, the computations of this scenario reduce toEquations (2) and (3) noted above.

Several aspects of the invention are described below with reference toexamples for illustration. It should be understood that numerousspecific details, relationships, and methods are set forth to provide afull understanding of the invention. One skilled in the relevant art,however, will readily recognize that the invention can be practicedwithout one or more of the specific details, or with other methods, etc.In other instances, well known structures or operations are not shown indetail to avoid obscuring the invention.

2. Example Environment

FIG. 1 is a block diagram illustrating the details of an exampleenvironment in which various aspects of the present invention can beimplemented. The environment is shown containing mobile phones 100 and199 connected by wireless network 150. Each block is described below infurther detail.

Mobile phone 100 is assumed to encode speech signal received on path 101in the form of compressed digital data, and transmit the resulting databits to mobile phone 199. Mobile phone 199 reproduces the speech signalfrom the received digital bits. Mobile phones 100 and 199 representexample devices in which various aspects of the present invention can beimplemented. Each mobile device is described below in further detail.

Mobile phone 100 is shown containing pre-processing block 110, speechencoder 120, channel encoder 130, and modulation and amplification block140, and mobile phone 199 is shown containing RF front-end 160, channeldecoder 170, speech decoder 180, and analog speech generator 190. Eachcomponent is described below in further detail.

For conciseness, mobile phone 100 is described as transmittingcompressed speech signal and mobile phone 199 as reproducing the speechsignal. However, the speech transmission would typically occur in thereverse direction as well, and accordingly each device also contains thecomponents depicted in the other device.

Pre-processing block 110 samples the input speech signal and performsvarious speech enhancements (e.g., silence enhancement, noisesuppression, well known in the relevant arts) by processing the digitalsamples. The output (uncompressed digital codes) of such processing isprovided to speech encoder 120.

Speech encoder 120 encodes the uncompressed digital codes in compressedformat, and provides the compressed data to channel encoder 130. In anembodiment, the uncompressed digital codes are received at 128 Kbps, andthe compressed data is generated at 8 Kbps. Some of the details of anexample embodiment of speech encoder 120 are described in further detailin sections below.

Channel encoder 130 encodes the compressed data with various errorcontrol coding techniques (well known in the relevant arts) based on thecharacteristic of the channel over which the wireless communication isperformed. Modulation and amplification block 140 modulates the encodeddigital data using a carrier of frequency. The modulated signal isamplified and transmitted using antenna 141. The modulated signal mayreach mobile phone 199 over wireless medium.

Continuing with the description of the components of mobile phone 199,RF front-end 160 receives the modulated signal and demodulates thereceived signal to obtain the encoded digital data. Channel decoder 170extracts the compressed data (by performing any needed correctionsaccording to the error control codes) from the encoded digital data. Theextracted compressed data is provided to the speech decoder 180.

Speech decoder 180 decompresses the compressed speech signal andprovides digital samples representing a speech signal to analog speechgenerator 190. Analog speech generator 190 converts the digital samplesinto speech signal and provides the analog speech signal to speaker (notshown) to reproduce the audible speech.

From the above, it may be appreciated that speech encoder 120 compressesthe sampled digital codes and speech decoder 180 decompresses the dataafter recovery of the compressed codes. The two blocks may need to beimplemented using consistent approaches, within acceptable quality andother design considerations.

The compression approaches may require determination of distance of eachof multiple input points from several fixed points in amulti-dimensional space, as described below with respect to the detailsof speech encoder 120 in one embodiment.

3. Speech Encoder

FIG. 2 is a block diagram illustrating the relevant details of speechencoder 120 in one embodiment. Speech encoder 120 is shown containingLPC (linear predictive coding) filter 220, voice activity detection(VAD) block 230, LSF (line spectral frequencies) smoothing block 240,and LSF quantization block 250. The general concepts underlying each ofthese blocks are described in a standards document number 3GPP2C.S0030_(—)0, Version 3.0, noted above in the background section.However, the relevant details are described briefly below.

LPC filter 220 receives uncompressed digital codes representing thespeech signal from pre-processing block 110 (on path 112), and estimatesspeech parameters representing attributes such as pitch, formants,spectra, etc., using previous speech samples. The estimated speechparameters (coefficients of the Nth order linear filter used forestimation) are provided as LSF parameters to LSF smoothing block 240.

VAD block 230 receives the speech parameters and classifies the inputsignal as either active voice (speech) or inactive voice (silence orbackground noise). VAD block 230 extracts several parameters from theinput signal and makes the classification decision using a set ofthresholds. The data representing the classification is provided to LSFsmoothing block 240.

LSF smoothing block 240 smoothens the received LSF parameters byaveraging the received values with previously received correspondingvalues. The smoothing operation is performed considering classificationindication (voice, silence, no signal, etc.) received from VAD block230. The smoothened parameters (forming a LSF vector) are provided toLSF quantization block 250.

LSF quantization block 250 receives the line spectral coefficients andgenerates a compressed representation of the line spectral coefficients.The compression may be performed by using a vector quantizationtechnique, in which inputs vectors are approximated to correspondingclosest fixed vectors, as described below in further detail.

4. Vector Quantization

The manner in which line spectral coefficients may be compressed isdescribed with reference to the diagram of FIG. 3. Broadly, predictionblocks 310 and 320 are used to predict present LSF vectors (from severalprior received LSF vectors) using respective different approaches.Errors representing the difference of the respective predicted andreceived LSF vectors are provided on paths 313 and 323 (in the form ofvectors of the same order).

Stage 330 performs vector quantization of the received error vectors, inwhich a desired number of nearest fixed pre-specified vectors aredetermined. Broadly, a specified number of fixed pre-specified vectorswhich are closest to the received error vectors are determined, asillustrated with reference to FIG. 4.

With respect to FIG. 4, it is assumed that there are 8 fixedpoints/vectors (431-438), and 2 input points (461 and 463), and it isdesirable to select 3 closest fixed points. Accordingly, 16 (8multiplied by 2) distances are calculated corresponding to each pair offixed vector-input point combination. The distances are sorted and thefixed points corresponding to the 3 minimum distances are selected.

In one embodiment, the (square of the weighted) distance between a Ithinput point (from a set of input points) and rth fixed point from acodebook (set of fixed point) is represented as a weighted mean squareerror (WMSE) values given as in the below Equation:

$\begin{matrix}{{WMSE}_{LSF}^{I,r} = {\sum\limits_{i = 1}^{10}{{W_{LSF}(i)}\left( {{I_{LSF}^{1}(i)} - {C_{LSF}^{r}(i)}} \right)^{2}}}} & {{Equation}\mspace{25mu} (4)} \\{{WMSE}_{LSF}^{I,r} = {\sum\limits_{i = 1}^{10}{{W_{LSF}(i)}\left( {{I_{LSF}^{1}(i)} - {C_{LSF}^{r}(i)}} \right)^{2}}}} & {{Equation}\mspace{25mu} (4)}\end{matrix}$

wherein I represents an input point, C represents a fixed points, irepresents an index and WLSF represents a weight.

Continuing with respect to FIG. 3, set of error vectors, eachrepresenting difference between selected input point and selected fixedpoint (selected based on lowest WMSE value) are provided to stage 340for further quantization. The quantization may be continued in a numberof stages until a single vector is generated in the last stage (herestage 360).

Such use of multiple stages is generally referred to as a multi-stagevector quantization (MSVQ) technique in the relevant arts. In oneembodiment, four stages are employed with 128, 128, 64, and 16 fixedpoints/vectors respectively, and the first three stages respectivelyselect 8, 7 and 5 closest points. The first stage in that embodimentreceive 1 or 2 inputs which are prediction error vectors from block 310and/or 320 representing the input points, as shown.

The pre-specified vectors corresponding to each stage may be stored in atable (memory, not shown), and indices representing the respective(reference) positions of the closest selected vectors are sent tochannel encoder 130. The table contents (i.e., the location of the fixedvectors) can also be dynamically varied (by speech encoder 120), and thetable contents can also be sent according to pre-specified protocols.Dynamic changes to the table contents is often referred to as code-booktraining in the relevant arts. Speech decoder 180 decompresses the databased on the received indices and table contents in a known way.

From the above description, assuming that there are R fixed points and Linput points (wherein L and R are integers), the weighted distances areused (L*R) times. Various features of the present invention reduces thecomputational complexity while determining such distances, as describedbelow. First the manner in which an aspect of the present inventionreduces the computational complexity when computing the distances fromeach of multiple input points from each of multiple fixed points, isdescribed.

5. Determining Distances

FIG. 5 is a flowchart illustrating the manner in which distances fromeach of multiple input points from each of multiple fixed points may becomputed according to an aspect of the present invention. The flowchartis described with reference to FIGS. 1-4, and stage 330 in particular,merely for illustration. The approaches can however be used in severalother environments and stages, as will be apparent to one skilled in therelevant arts by reading the disclosure provided herein. The flowchartstarts in step 501, in which control transfers to step 510.

In step 510, stage 330 stores in a memory the energy (defined as the sumof the squares of the coordinates of the vector defining a point) ofeach fixed point. In an alternative embodiment, the square values of theindividual coordinates are stored. However, computational complexity isreduced by storing the sum (energy), as can be readily appreciated.Other approaches can be used to store the square values, depending onvarious considerations.

In step 520, stage 330 computes the energy of each received input point,which may also be stored in a memory. The energy may be computed bysquaring each coordinate of the input point, and adding the squarevalues. As will be clear from the description below, steps 520, 530 and540 would then be performed to determine each distance of interest.

In step 530, stage 330 computes a dot product of a received input pointwith a fixed point. The dot product is computed by multiplyingcorresponding coordinates of the input point and the fixed point, andadding the results. The necessary multiplication by 2 for each dotproduct may be eliminated by multiplying input vector by 2 and storingthe scaled input vector. The dot product is hence computed bymultiplying scaled input vector with the fixed point.

In step 540, stage 330 computes a distance of the input point from eachfixed point based on energy values (or other data) stored in the memory.

In step 550, steps 520 through 540 noted above are performed formultiple combinations of input points and fixed points. Assuming theenergy value for each input point is already stored (as noted in step520), only steps 530 and 540 need to be performed for each combinationof input points and fixed points. The flowchart ends in step 599.

It should be appreciated that the approach above determines thedistances of desired combinations of points with reduced computationalcomplexity. In comparison to the example noted in the background sectionin which there are 30 fixed points and 7 input points (wherein L and Rare integers), the number of computations equals (300+70) squareoperations, (370) additions, 2100 multiply accumulate (MAC) operations.

Of the above, 300 square operations and 300 addition operations areperformed in step 510, 70 square operations and 70 additions areperformed in step 320, and 2100 MAC operations are performed in step530. These number of computations compare favorably with the 2100 squareoperations, 2100 subtractions, 1890 additions and 210 square rootoperations noted above in the background section.

The description is continued with respect to the manner in which theabove-noted approach can be applied to reduce computation complexitywhen determining distances of Equation 4 (in which weighted mean squareerror is being computed).

6. Weighted Mean Square Error

The approach of FIG. 5 can be used to determine weighted mean squareerror (WMSE) of equation 4. Hence according to an aspect of the presentinvention, the weighted mean square error between a Ith Input point andrth fixed point from a code-book may be computed as:

$\begin{matrix}{{WMSE}_{LSF}^{l,r} = {{\sum\limits_{i = 1}^{10}{{W_{LSF}(i)}\left( {I_{LSF}^{l}(i)} \right)^{2}}} + {\sum\limits_{i = 1}^{10}{{W_{LSF}(i)}\left( {C_{LSF}^{r}(i)} \right)^{2}}} + {\sum\limits_{i = 1}^{10}{\left( {{- 2}*{W_{LSF}(i)}{I_{LSF}^{l}(i)}} \right) \cdot {C_{LSF}^{r}(i)}}}}} & {{Eq}.\mspace{20mu} (5)}\end{matrix}$

wherein * and “.” represents multiplication and dot product operationsrespectively and the remaining terms are defined above with respect toEquation (4). In the description below, the three terms (from left toright) separate by the two + symbols are referred to as a term 1, term 2and term 3 respectively.

The reduction in computation complexity is illustrated using the tablesof FIGS. 6A and 6B. Broadly, the table of FIG. 6A illustrates thecomputational complexity when the distances are computed according tothe prior approach of Equation 4, while FIG. 6B illustrates thecorresponding computational complexity when the distances are computedaccording to Equation (5).

The information in both the tables is provided assuming four stages areemployed with corresponding number of fixed vectors (code book size)128, 128, 64, and 16 respectively, and the number of input vectors tocorresponding four stages equals 2, 8, 7 and 5.

With respect to FIG. 6A, row 610 corresponds to Rate 1 (Highest daterate, in the 3GPP2 standard) as indicates by column 620. Thecorresponding computation requirement (of the prior approach) is shownin column 621. Here 30 represents the sum of 10 subtraction, 10 squareoperations and 10 MAC (multiplication and accumulation) operations to beperformed for each combination in Equation 4. The number of combinationsi represented by (2*128+8*128+7*64+5*16), consistent with the code booksize and the number of input vectors, noted above.

Column 622 indicates the total computational complexity measured interms of WFLOPs (number of floating point operations), and is shownequaling 54,240 in row 622. The remaining rows 611, 612 and 613 aresimilarly described, and the corresponding description is not repeatedin the interest of conciseness. The reduction of computationalcomplexity is now described with respect to FIG. 6B.

With respect to FIG. 6B, it should be appreciated that rows 660-663respectively correspond to the same rates as in row 610-613. Columns671, 672, and 673 respectively correspond to the computations for term1, term 2 and term 3 of Equation 5. For conciseness, only the values inrow 660 are described is detail and compared with the correspondingvalues of row 610.

With respect to row 660, column 671 indicates that the computationalcomplexity for term 1 equals (20*(2+8+7+5)), wherein 2, 8, 7 and 5correspond to the number of input vectors in the four stagesrespectively, + and * representing the arithmetic addition andmultiplication operations respectively. 20 corresponds to 10 squareoperations and 10 multiplication operations.

Column 672 of row 660 is shown containing (20*(128+128+64+16)) for thesecond term (term 2), wherein 20 is described above, and 128, 128, 64and 16 respectively correspond to the code-book entries in the each ofthe four stages.

Column 673 of row 660 is shown containing(12*(2*128+8*128+7*64+5*16)+440) for term 3. In this, the first 12corresponds to 10 MAC operations for dot product and 2 additionsrequired to sum term 1 and term 2 with term 3. The number 440corresponds to 20(2+8+7+5) operations, wherein 2, 8, 7 and 5 correspondto the number of input vectors in the four stages respectively and 20corresponds to multiplication operation performed to multiply each inputvector with a 2 and weight.

Column 674 of row 660 represents the aggregate computational complexity(28936) for the three terms in the four stages, and is thus obtained byadding the corresponding entries in the three columns 671-673.

Column 675 represents the total percentage of reduction in computationalcomplexity. Row 660 indicates that the reduction in computationalcomplexity for rate 1 equals 45.98% (=(54240−29296)*100/54240).Reduction in computational complexity is similarly shown obtained forrates 1/2, 1/4 and 1/8 also.

Thus, the approach of FIG. 5 can be used to reduce the number ofcomputations required in mobile phones 100 and 199 described above. Theapproaches can be used in other environments as well. The description iscontinued with respect to an embodiment in which the features areoperative upon execution of software instructions, as described below.

7. Digital Processing System

FIG. 7 is a block diagram of computer system 700 illustrating an examplesystem in which distances may be computed according to the approachesdescribed above. Computer system 700 may contain one or more processorssuch as central processing unit (CPU) 710, random access memory (RAM)720, secondary memory 730, graphics controller 760, display unit 770,network interface 780, and input interface 790. All the componentsexcept display unit 770 may communicate with each other overcommunication path 750, which may contain several buses as is well knownin the relevant arts. The components of FIG. 7 are described below infurther detail.

CPU 710 may execute instructions stored in RAM 720 to provide severalfeatures of the present invention (by performing tasks corresponding tovarious approaches described above). CPU 710 may contain multipleprocessing units, with each processing unit potentially being designedfor a specific task. Alternatively, CPU 710 may contain only a singleprocessing unit. RAM 720 may receive instructions from secondary memory730 using communication path 750.

Graphics controller 760 generates display signals (e.g., in RGB format)to display unit 770 based on data/instructions received from CPU 710.Display unit 770 contains a display screen to display the images definedby the display signals. Input interface 790 may correspond to akey_board and/or mouse, and generally enables a user to provide inputs.Network interface 780 enables some of the inputs (and outputs) to beprovided on a network.

Secondary memory 730 may contain hard drive 731, flash memory 736 andremovable storage drive 737. Secondary storage 730 may store thesoftware instructions (which perform the actions specified by variousflow chart above) and data (e.g., the tables in case of phones), whichenable computer system 700 to provide several features in accordancewith the present invention. Some or all of the data and instructions maybe provided on removable storage unit 740, and the data and instructionsmay be read and provided by removable storage drive 737 to CPU 710.Floppy drive, magnetic tape drive, CD_ROM drive, DVD Drive, Flashmemory, removable memory chip (PCMCIA Card, EPROM) are examples of suchremovable storage drive 737.

Removable storage unit 740 may be implemented using medium and storageformat compatible with removable storage drive 737 such that removablestorage drive 737 can read the data and instructions. Thus, removablestorage unit 740 includes a computer readable storage medium havingstored therein computer software and/or data. An embodiment of thepresent invention is implemented using software running (that is,executing) in computer system 700.

In this document, the term “computer program product” is used togenerally refer to removable storage unit 740 or hard disk installed inhard drive 731. These computer program products are means for providingsoftware to computer system 700. As noted above, CPU 710 may retrievethe software instructions, and execute the instructions to providevarious features of the present invention.

8. Conclusion

While various embodiments of the present invention have been describedabove, it should be understood that they have been presented by way ofexample only, and not limitation. Thus, the breadth and scope of thepresent invention should not be limited by any of the above describedexemplary embodiments, but should be defined only in accordance with thefollowing claims and their equivalents.

1-3. (canceled)
 4. A method for encoding in a speech encoder, saidmethod comprising: receiving a stream of uncompressed digital codes;computing a weighted distance between each of L input points and R fixedpoints according to a weight vector, wherein L and R are integers havinga value greater than 1, the with wth one of said input points beingrepresented by (Iw1, Iw2, . . . , Iwn) and jth one of said fixed pointsbeing represented by (Fj(1), Fj(2), . . . , Fj(n)), said weighted vectorbeing represented by (G(1), G(2), . . . , G(n)), and said weighteddistance (WMSEw,j) between said wth input point and said jth fixed pointbeing represented by:${WMSE}^{w,j} = {\sum\limits_{i = l}^{n}{{G(i)}\left( {{I^{w}(i)} - {F^{j}(i)}} \right)^{2}}}$said computing comprising: computing a first aggregated value equaling:$\sum\limits_{i = 1}^{10}{{W_{LSF}(i)}\left( {I_{LSF}^{l}(i)} \right)^{2}}$computing a second aggregated value equaling$\sum\limits_{i = 1}^{10}{{W_{LSF}(i)}\left( {C_{LSF}^{r}(i)} \right)^{2}}$computing a third aggregated value equaling$\sum\limits_{i = 1}^{n}{\left( {{- 2}*{G(i)}{I^{w}(i)}} \right) \cdot {F^{j}(i)}}$and adding said first aggregated value, said second aggregated value andsaid third aggregated value to generate said weighted distance; andencoding said uncompressed digital codes into a compressed format usingthe results of computing the distance between each of L input points andR fixed points.
 5. The method of claim 4, wherein said L input pointsrepresent L samples of speech, and R fixed points represents entries acode book according to which said L samples are represented in acompressed format.
 6. The method of claim 5, wherein compressed formatis according to 3 Gpp2 standard.
 7. The method of claim 5, wherein saidweighted distance is computed for each combination of j=1 to R and I=1to L.
 8. A computer readable medium carrying one or more sequences ofinstructions for causing a system to compute the weighted distancebetween each of L input points and R fixed points according to a weightvector, wherein L and R are integers having a value greater than 1, thewith wth one of said input points being represented by (Iw1, Iw2, . . ., Iwn) and jth one of said fixed points being represented by (Fj(1),Fj(2), . . . , Fj(n)), said weighted vector being represented by (G(1),G(2), . . . , G(n)), and said weighted distance (WMSEw,j) between saidwth input point and said jth fixed point being represented by: whereinexecution of said one or more sequences of instructions by one or moreprocessors contained in said system causes said one or more processorsto perform the actions of: computing a first aggregated value equaling:$\sum\limits_{i = 1}^{10}{{W_{LSF}(i)}\left( {I_{LSF}^{l}(i)} \right)^{2}}$computing a second aggregated value equaling$\sum\limits_{i = 1}^{10}{{W_{LSF}(i)}\left( {C_{LSF}^{r}(i)} \right)^{2}}$computing a third aggregated value equaling$\sum\limits_{i = 1}^{n}{\left( {{- 2}*{G(i)}{I^{w}(i)}} \right) \cdot {F^{j}(i)}}$and adding said first aggregated value, said second aggregated value andsaid third aggregated value to generate said weighted distance.
 9. Thecomputer readable medium of claim 8, wherein said L input pointsrepresent L samples of speech, and R fixed points represents entries acode book according to which said L samples are represented in acompressed format.
 10. The computer readable medium of claim 9, whereincompressed format is according to 3 Gpp2 standard. 11-23. (canceled)